Assuming they can be effectively programmed, parallel processors such as graphics processing units (GPUs) have the potential to be remarkably adept at processing numerical algorithms, and particularly algorithms for directly solving large sparse linear systems.
Sparse linear systems are systems of linear equations with sparse coefficient matrices. These systems arise in the context of computational mechanics, geophysics, biology, circuit simulation and many other contexts in the fields of computational science and engineering. For example, a sparse linear system of nodes loosely coupled to each other would have few dependencies among the nodes. In certain contexts, direct solution methods for solving sparse linear systems exist and may be preferred for their robustness and predictable behavior. Iterative methods for solving sparse linear systems are gaining popularity as ever-larger sparse linear systems need solved and iterative solvers have become more efficient.
One common method of improving the efficiency of an iterative solver is to use a preconditioner to reduce the number of necessary iterations for reaching a prescribed error tolerance, as opposed to gaining efficiencies in the solver itself. Preconditioning is a way to transform the original linear system into another having the same solution, but is more amenable to an iterative solver. Popular preconditioners include stationary iterative methods such as Jacobi and Gauss-Seidel and incomplete factorization methods. Good preconditioners are ideally computationally cheap, reduce the number solver iterations and require little storage. Many institutions are funneling increasingly large amounts of resources into exploring iterative solvers and the application of preconditioners.